In [ ]:
 
In [1]:
jupyter_pwd = %pwd
if jupyter_pwd == "/":
    %cd /workspace


# ipynb形式のライブラリのインポート
%run ./lib/lib.ipynb

# ipynb形式のライブラリノートを.py形式に変更したものをインポート
import lib
import lib.lab_lib
from lib.lab_lib import *

# 生データの入ったCSVファイルの保持されたディレクトリ名を格納している変数
csvDirPath = "./csv_files/"

# NPBのベンチマーク名のリスト
benchmarkNames = ["cg", "ep", "ft", "is", "lu", "mg"]

# NPBのプロセス数
npb_process :list[int] = [2, 4, 8, 16, 32, 64, 128, 256]
train_npb_process :list[int] = npb_process[:-1]
test_npb_process :list[int] = npb_process[-1:]
# NPBのCGの初期変数
cg_na: list[int] = [14000, 30000, 75000, 100000, 1500000]
cg_nonzer: list[int] = [11, 12, 13, 14, 15, 18, 21]
cg_niter: list[int] = [15, 30, 75, 90, 100]
cg_shift: list[int] = [20, 40, 60, 80, 110, 200]

train_cg_na: list[int] = cg_na[:-1]
train_cg_nonzer: list[int] = cg_nonzer[:-1]
train_cg_niter: list[int] = cg_niter[:-1]
train_cg_shift: list[int] = cg_shift[:-1]

test_cg_na: list[int] = cg_na[-1:]
test_cg_nonzer: list[int] = cg_nonzer[-1:]
test_cg_niter: list[int] = cg_niter[-1:]
test_cg_shift: list[int] = cg_shift[-1:]

# LULESH ベンチマークプログラムのプロセス数・問題サイズ・イテレーション数
lulesh_processes: list[int] = [8, 27, 64, 125, 216, 343, 512]
lulesh_iterations: list[int] = [8, 16, 32, 64, 128, 256]
lulesh_sizes: list[int] = [16, 24, 32, 48, 64, 128]

train_lulesh_processes: list[int] = [8, 27, 64, 125, 216, 343]
train_lulesh_iterations: list[int] = [8, 16, 32, 64, 128]
train_lulesh_sizes: list[int] = [16, 24, 32, 48]

test_lulesh_processes: list[int] = [512, 729, 1000]
test_lulesh_iterations: list[int] = [256, 512, 1024]
test_lulesh_sizes: list[int] = [64, 96, 128]


list_modelName: list[str] = [
    "modelIp",
    "modelLog",
    "modelLinAndIp",
    "modelLinAndLog",
    "modelIpAndLin",
    "modelIpAndLog",
    "modelLogAndLin",
    "modelLogAndIp",
    "modelProcessDividedByProblemSize",
    "modelProblemSizeDividedByProcess",
    "modelInfiniteProductOfProblemSizeMultipliedByProcesses",
    "modelInfiniteProductOfProblemSizeDividedByProcesses",
    "modelLinearSumOf2elementCombination",
    "modelLinearSumOfElementCombinations",
    "modelLinearSumOf2elementCombinationWithSquared",
    "modelLinearSumOf2elementCombinationWithCubed",
    "modelSquareRootOfProcess",
    "modelSquareRootTimesOtherElems",
    "modelObeyOneParameter",
    "modelLin"
    # "modelBasicTree",
]
list_csvDir = [
    "./csv_files/lulesh_1st/",
    "./csv_files/lulesh_2nd/",
    "./csv_files/lulesh_3rd/",
]
/workspace
DEBUG:__main__:hello
DEBUG:lib.lab_lib:hello

TODO¶

  1. 相対コスト
    • ✅TAU計測の実行時間による相対コストの算出
    • ✅ベンチマークプログラム実行後に出力される実行時間の取得
    • ベンチマークプログラム実行後に出力される実行時間による相対コストの算出
  2. 不要なモデルの削除
  3. モデルの採用割合
  4. 予測のコストをプロットした奴
  5. 誤差率とコストを同じ表に収めた奴
In [2]:
list_series: list[pd.Series] = []
pis: list[str]
for elem_process in [8, 27, 64, 125, 216, 343] + [512, 729, 1000]:
    print(elem_process)

    fileDir: str = "./txt_files/ElapFiles/"
    fileName: str = f"p{elem_process}_Elap"
    with open(fileDir + fileName) as f:
        l: list[str] = [s.strip() for s in f.readlines()]
    if len(l) % 2 != 0:
        warnings.warn("ファイルの行数が偶数ではありません")
    for i in range(len(l)):
        if i % 2 == 0:
            pis = l[i].split(sep="/")[-3:]
        else:
            time = l[i].split(sep=" ")[-2]
            _series: pd.Series = pd.Series(
                {
                    "p": int(pis[0].replace("p", "")),
                    "i": int(pis[1].replace("i", "")),
                    "s": int(pis[2].replace("s", "")),
                    "time": float(time),
                }
            )
            _series["cost"] = _series["p"] * _series["time"]
            list_series.append(_series)
        # print(f"pis={pis}, time={time}")

DF_pis_time: pd.DataFrame = pd.DataFrame(data=list_series)

DF_pis_time
8
27
64
125
216
343
512
729
1000
Out[2]:
p i s time cost
0 8.0 8.0 16.0 0.044 0.352
1 8.0 8.0 24.0 0.170 1.360
2 8.0 8.0 32.0 0.380 3.040
3 8.0 8.0 48.0 1.200 9.600
4 8.0 8.0 64.0 2.900 23.200
... ... ... ... ... ...
556 1000.0 512.0 96.0 980.000 980000.000
557 1000.0 512.0 128.0 2300.000 2300000.000
558 1000.0 1024.0 64.0 550.000 550000.000
559 1000.0 1024.0 96.0 2000.000 2000000.000
560 1000.0 1024.0 128.0 4700.000 4700000.000

561 rows × 5 columns

In [3]:
target_p_border: int = test_lulesh_processes[0]
target_i_border: int = test_lulesh_iterations[0]
target_s_border: int = test_lulesh_sizes[0]

DF_pis_time_at_train: pd.DataFrame = DF_pis_time[
    (DF_pis_time["p"] < target_p_border)
    & (DF_pis_time["i"] < target_i_border)
    & (DF_pis_time["s"] < target_s_border)
]
DF_pis_time_at_target: pd.DataFrame = DF_pis_time[
    (DF_pis_time["p"] >= target_p_border)
    & (DF_pis_time["i"] >= target_i_border)
    & (DF_pis_time["s"] >= target_s_border)
]
In [4]:
cost_to_build_model: float = sum(DF_pis_time_at_train["cost"])
In [5]:
DF_pis_time_at_target = DF_pis_time_at_target.sort_values(by=["p", "i", "s"])
DF_pis_time_at_target
Out[5]:
p i s time cost
480 512.0 256.0 64.0 130.0 66560.0
489 512.0 256.0 64.0 130.0 66560.0
498 512.0 256.0 64.0 130.0 66560.0
481 512.0 256.0 96.0 470.0 240640.0
490 512.0 256.0 96.0 470.0 240640.0
... ... ... ... ... ...
550 1000.0 1024.0 96.0 1900.0 1900000.0
559 1000.0 1024.0 96.0 2000.0 2000000.0
542 1000.0 1024.0 128.0 4600.0 4600000.0
551 1000.0 1024.0 128.0 4700.0 4700000.0
560 1000.0 1024.0 128.0 4700.0 4700000.0

81 rows × 5 columns

In [6]:
DF_pis_time_at_train = DF_pis_time_at_train.sort_values(by=["p", "i", "s"])
condition_col: list[str] = ["p", "i", "s"]
averaged_DF_pis_time_at_target = DF_pis_time_at_target.groupby(condition_col).aggregate(
    np.mean
)
DF_pis_time_at_train
Out[6]:
p i s time cost
0 8.0 8.0 16.0 0.044 0.352
30 8.0 8.0 16.0 0.044 0.352
60 8.0 8.0 16.0 0.044 0.352
1 8.0 8.0 24.0 0.170 1.360
31 8.0 8.0 24.0 0.170 1.360
... ... ... ... ... ...
446 343.0 128.0 32.0 8.200 2812.600
476 343.0 128.0 32.0 7.500 2572.500
417 343.0 128.0 48.0 25.000 8575.000
447 343.0 128.0 48.0 27.000 9261.000
477 343.0 128.0 48.0 24.000 8232.000

360 rows × 5 columns

In [7]:
import plotly.graph_objs as go

trace_data = []
layout = go.Layout(barmode="stack")
for i, sr in DF_pis_time_at_target.reset_index().iterrows():
    x = [j for j in range(1, len(DF_pis_time_at_target) + 1)]
    y = [0] * len(DF_pis_time_at_target)
    for k in range(int(i), len(DF_pis_time_at_target)):
        y[k] = sr["cost"]
    trace = go.Bar(x=x, y=y, name=f"p{int(sr['p'])}i{int(sr['i'])}s{int(sr['s'])}")
    trace_data.append(trace)

fig = go.Figure(data=trace_data, layout=layout)
fig.add_shape(
    type="line",
    x0=0,
    x1=len(DF_pis_time_at_target),
    y0=cost_to_build_model,
    y1=cost_to_build_model,
    line=dict(
        color="Red",
    ),
    xref="x",
    yref="y",
    name="cost to build model",
)
fig.update_layout(
    xaxis=dict(title="counts of target environments"),
    yaxis=dict(title="cost"),
)
fig.show()
In [8]:
averaged_DF_pis_time_at_target = averaged_DF_pis_time_at_target.reset_index()
In [9]:
graph_x: list[int] = list(range(1, len(averaged_DF_pis_time_at_target) + 1))
graph_y: list[float] = [0] * len(averaged_DF_pis_time_at_target)

for i, sr in averaged_DF_pis_time_at_target.iterrows():
    for k in range(i, len(averaged_DF_pis_time_at_target)):
        graph_y[k] += sr["cost"]


data = go.Scatter(x=graph_x, y=graph_y)
fig = go.Figure(data=data)
fig.add_shape(
    type="line",
    x0=0,
    x1=len(averaged_DF_pis_time_at_target),
    y0=cost_to_build_model,
    y1=cost_to_build_model,
    line=dict(
        color="Red",
    ),
    xref="x",
    yref="y",
    name="cost to build model",
)
fig.update_layout(
    xaxis=dict(title="Number of scales predicted"),
    yaxis=dict(title="cost", type="log"),
    width=1000,
    height=500,
)

fig.show()
In [10]:
trace1 = go.Bar(x=["giraffes", "orangutans", "monkeys"], y=[20, 14, 23], name="SF Zoo")
trace2 = go.Bar(x=["giraffes", "orangutans", "monkeys"], y=[21, 18, 29], name="LA Zoo")
trace3 = go.Bar(x=["giraffes", "orangutans", "monkeys"], y=[22, 19, 30], name="LA Zoo")

data = [trace1, trace2, trace3]
layout = go.Layout(barmode="stack")

fig = go.Figure(data=data, layout=layout)
fig.show()
In [11]:
resVar = "Exclusive"
In [12]:
costToBuildModel: float = 0
for elem_process in train_lulesh_processes:
    for elem_iteration in train_lulesh_iterations:
        for elem_size in train_lulesh_sizes:
            inputDFtoGetCost: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )
            costToBuildModel += get_CostAtInputDF(
                inputDF=inputDFtoGetCost,
                targetColName=resVar,
                numOfProcess=elem_process,
            )

print(f"costToBuildModel={costToBuildModel}")
costToBuildModel=79575.00722467963
In [13]:
list_toDFaboutCostAndCondition: list[pd.Series] = []
for elem_process in test_lulesh_processes:
    for elem_iteration in test_lulesh_iterations:
        for elem_size in test_lulesh_sizes:
            inputDFtoGetCost: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )
            costInThisCondition: float = get_CostAtInputDF(
                inputDF=inputDFtoGetCost,
                targetColName=resVar,
                numOfProcess=elem_process,
            )
            _series: pd.Series = pd.Series(
                {
                    "cost": costInThisCondition,
                    "process": elem_process,
                    "iteration": elem_iteration,
                    "size": elem_size,
                    "relativeCost(=costToBuildModel/cost * 100)": costToBuildModel
                    / costInThisCondition
                    * 100,
                }
            )
            list_toDFaboutCostAndCondition.append(_series)

DFaboutCost: pd.DataFrame = pd.DataFrame(data=list_toDFaboutCostAndCondition)

DFaboutCost
Out[13]:
cost process iteration size relativeCost(=costToBuildModel/cost * 100)
0 6.766045e+04 512.0 256.0 64.0 117.609342
1 2.416557e+05 512.0 256.0 96.0 32.929089
2 5.856285e+05 512.0 256.0 128.0 13.587966
3 1.348294e+05 512.0 512.0 64.0 59.019038
4 4.893476e+05 512.0 512.0 96.0 16.261448
5 1.175641e+06 512.0 512.0 128.0 6.768646
6 2.744798e+05 512.0 1024.0 64.0 28.991209
7 9.680321e+05 512.0 1024.0 96.0 8.220286
8 2.344354e+06 512.0 1024.0 128.0 3.394325
9 1.042970e+05 729.0 256.0 64.0 76.296510
10 3.467657e+05 729.0 256.0 96.0 22.947777
11 8.331797e+05 729.0 256.0 128.0 9.550761
12 2.013598e+05 729.0 512.0 64.0 39.518824
13 7.011921e+05 729.0 512.0 96.0 11.348532
14 1.669530e+06 729.0 512.0 128.0 4.766312
15 3.938422e+05 729.0 1024.0 64.0 20.204793
16 1.400879e+06 729.0 1024.0 96.0 5.680364
17 3.355712e+06 729.0 1024.0 128.0 2.371330
18 1.400870e+05 1000.0 256.0 64.0 56.803996
19 4.907890e+05 1000.0 256.0 96.0 16.213689
20 1.160934e+06 1000.0 256.0 128.0 6.854393
21 2.773810e+05 1000.0 512.0 64.0 28.687982
22 9.880887e+05 1000.0 512.0 96.0 8.053427
23 2.316158e+06 1000.0 512.0 128.0 3.435647
24 5.627363e+05 1000.0 1024.0 64.0 14.140727
25 1.943521e+06 1000.0 1024.0 96.0 4.094374
26 4.651948e+06 1000.0 1024.0 128.0 1.710574
In [14]:
print(DFaboutCost.to_csv())
,cost,process,iteration,size,relativeCost(=costToBuildModel/cost * 100)
0,67660.44779434668,512.0,256.0,64.0,117.60934167410058
1,241655.66206907728,512.0,256.0,96.0,32.92908866415599
2,585628.5268031145,512.0,256.0,128.0,13.587966361384643
3,134829.38787379197,512.0,512.0,64.0,59.019037673868546
4,489347.61192789325,512.0,512.0,96.0,16.261447953363106
5,1175641.4546334718,512.0,512.0,128.0,6.768645909095527
6,274479.7778389333,512.0,1024.0,64.0,28.99120942577228
7,968032.1129782613,512.0,1024.0,96.0,8.220285893187782
8,2344354.329343829,512.0,1024.0,128.0,3.3943250910775173
9,104297.04679624198,729.0,256.0,64.0,76.29651046605365
10,346765.65203209495,729.0,256.0,96.0,22.947776620423337
11,833179.7265746038,729.0,256.0,128.0,9.550761340753098
12,201359.75723555396,729.0,512.0,64.0,39.518823580816836
13,701192.085256251,729.0,512.0,96.0,11.348531864217906
14,1669530.079918935,729.0,512.0,128.0,4.766311681460897
15,393842.233052451,729.0,1024.0,64.0,20.204792819687782
16,1400878.763300601,729.0,1024.0,96.0,5.680363591007226
17,3355711.696609109,729.0,1024.0,128.0,2.371330269673907
18,140086.98776966662,1000.0,256.0,64.0,56.80399621092446
19,490789.0369463333,1000.0,256.0,96.0,16.21368882234853
20,1160934.3817936662,1000.0,256.0,128.0,6.8543931916061185
21,277380.9845486667,1000.0,512.0,64.0,28.68798211029428
22,988088.7108259998,1000.0,512.0,96.0,8.053427425373409
23,2316158.048016,1000.0,512.0,128.0,3.435646686237274
24,562736.3166596666,1000.0,1024.0,64.0,14.140727169880748
25,1943520.7169620001,1000.0,1024.0,96.0,4.094374015681536
26,4651948.381511664,1000.0,1024.0,128.0,1.7105737359626827

In [ ]:
 

Exclusive¶

In [15]:
expVar: list[str] = ["process", "iteration", "size"]
resVar: str = "Exclusive"

trainDF: pd.DataFrame = ret_averaged_rawDF_lulesh(
    list_process=train_lulesh_processes,
    list_iteration=train_lulesh_iterations,
    list_size=train_lulesh_sizes,
    list_csvDir=list_csvDir,
    resVar=resVar,
)

testDF: pd.DataFrame = ret_averaged_rawDF_lulesh(
    list_process=test_lulesh_processes,
    list_iteration=test_lulesh_iterations,
    list_size=test_lulesh_sizes,
    list_csvDir=list_csvDir,
    resVar=resVar,
)

testDF = testDF.reset_index()
trainDF = trainDF.reset_index()

testDF["functionName"] = testDF["Name"]
trainDF["functionName"] = trainDF["Name"]

functionNames: list[str] = sorted(list(set(trainDF["Name"])))

dict_symbols = {}
for elem in expVar:
    dict_symbols[elem] = symbols(elem, real=True)

target_env = [
    (dict_symbols["size"], test_lulesh_sizes[-1]),
    (dict_symbols["iteration"], test_lulesh_iterations[-1]),
    (dict_symbols["process"], test_lulesh_processes[-1]),
]

filePath: str = f"./extra-p_docker/share/input_lulesh_perFunc.txt"
In [16]:
dict_models: dict[str, dict[str, any]] = {}
for functionName in functionNames:

    trainDF_perFunc: pd.DataFrame = trainDF[trainDF["Name"] == functionName]
    testDF_perFunc: pd.DataFrame = testDF[testDF["Name"] == functionName]

    # 総実行時間

    resVar = "Exclusive"
    # Extra-P への入力ファイル作成
    str_ExtraPinputData: str = gen_ExtraPinputDataFromDF(
        inputDF=testDF_perFunc,
        expVar=expVar,
        resVar=resVar,
    )
    with open(filePath, mode="w") as f:
        f.write(str_ExtraPinputData)
    # Extra-P の実行とその出力の取得
    res_str: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout
    res_str_default: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt --modeler default --options poly_exponents=-1,0,1,2,3 log_exponents=0,1 force_combination_exponents=1 allow_negative_exponents=1 | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout
    res_str_multiParameter: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt --modeler multi-parameter | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout

    # 取得した Extra-P の出力の整形
    res_str = res_str.replace("Model: ", "")
    res_str = convert_log(res_str)
    res_str_default = res_str_default.replace("Model: ", "")
    res_str_default = convert_log(res_str_default)
    res_str_multiParameter = res_str_multiParameter.replace("Model: ", "")
    res_str_multiParameter = convert_log(res_str_multiParameter)
    # 総実行時間の予測
    model_sympy_all = sympify(res_str, locals=dict_symbols)
    model_sympy_all_default = sympify(res_str_default, locals=dict_symbols)
    model_sympy_all_multiParameter = sympify(
        res_str_multiParameter, locals=dict_symbols
    )

    # 1コール当たりの実行時間

    resVar = "ExclusivePerCall"
    # Extra-P への入力ファイル作成
    str_ExtraPinputData: str = gen_ExtraPinputDataFromDF(
        inputDF=testDF_perFunc,
        expVar=expVar,
        resVar=resVar,
    )
    with open(filePath, mode="w") as f:
        f.write(str_ExtraPinputData)
    # Extra-P の実行とその出力の取得
    res_str: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout
    res_str_default: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt --modeler default --options poly_exponents=-1,0,1,2,3 log_exponents=0,1 force_combination_exponents=1 allow_negative_exponents=1 | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout
    res_str_multiParameter: str = subprocess.run(
        "extrap --text ./extra-p_docker/share/input_lulesh_perFunc.txt --modeler multi-parameter | grep Model",
        stdout=subprocess.PIPE,
        text=True,
        shell=True,
    ).stdout

    # 取得したExtra-Pの出力の整形
    res_str = res_str.replace("Model: ", "")
    res_str = convert_log(res_str)
    res_str_default = res_str_default.replace("Model: ", "")
    res_str_default = convert_log(res_str_default)
    res_str_multiParameter = res_str_multiParameter.replace("Model: ", "")
    res_str_multiParameter = convert_log(res_str_multiParameter)
    # 総実行時間の予測
    model_sympy_perCall = sympify(res_str, locals=dict_symbols)
    model_sympy_perCall_default = sympify(res_str_default, locals=dict_symbols)
    model_sympy_perCall_multiParameter = sympify(
        res_str_multiParameter, locals=dict_symbols
    )

    # 関数コール回数の予測

    # 関数コール回数予測のためのモデルを構築
    resVar = "#Call"
    bestModelDict: dict = return_bestModelObject(
        inputDF=trainDF_perFunc,
        list_expVar=expVar,
        list_resVar=[resVar],
        list_modelName=list_modelName,
    )
    bestModel = bestModelDict["object"]

    dict_models_perFunc: dict[str, any] = {
        "time_all": model_sympy_all,
        "time_all_default": model_sympy_all_default,
        "time_all_multiParameter": model_sympy_all_multiParameter,
        "time_perFunc": model_sympy_perCall,
        "time_perFunc_default": model_sympy_perCall_default,
        "time_perFunc_multiParameter": model_sympy_perCall_multiParameter,
        "call_perFunc": bestModel,
    }
    dict_models[functionName] = dict_models_perFunc
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

/usr/local/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:881: OptimizeWarning:

Covariance of the parameters could not be estimated

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
In [17]:
# 集計をする
# それぞれの予測対象ケースで総実行時間の相対誤差率を算出する
# 算出された相対誤差率をプロットする

resVar: str = "Exclusive"
dict_resultDF_perFunc = {}
for elem_process in test_lulesh_processes:
    for elem_iteration in test_lulesh_iterations:
        for elem_size in test_lulesh_sizes:

            print(
                f"process={elem_process}, iteration={elem_iteration}, size={elem_size}"
            )

            testDF_oneCase: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )
            testDF_oneCase["functionName"] = testDF_oneCase["Name"]

            target_env = [
                (dict_symbols["size"], elem_size),
                (dict_symbols["iteration"], elem_iteration),
                (dict_symbols["process"], elem_process),
            ]

            functionNames: list[str] = sorted(list(testDF_oneCase["Name"]))
            list_series: list[pd.Series] = []
            for functionName in functionNames:
                testDF_oneCase_perFunc: pd.DataFrame = testDF_oneCase[
                    testDF_oneCase["Name"] == functionName
                ]

                if len(testDF_oneCase_perFunc) != 1:
                    warnings.warn("len(testDF_oneCase_perFunc) != 1")
                    exit

                # 総実行時間の予測
                Exclusive_predicted_all: float = (
                    dict_models[functionName]["time_all"].subs(target_env).evalf()
                )
                Exclusive_predicted_all_default: float = (
                    dict_models[functionName]["time_all_default"]
                    .subs(target_env)
                    .evalf()
                )
                Exclusive_predicted_all_multiParameter: float = (
                    dict_models[functionName]["time_all_multiParameter"]
                    .subs(target_env)
                    .evalf()
                )
                # 1コール当たりの実行時間
                Exclusive_predicted_perFunc: float = (
                    dict_models[functionName]["time_perFunc"].subs(target_env).evalf()
                )
                Exclusive_predicted_perFunc_default: float = (
                    dict_models[functionName]["time_perFunc_default"]
                    .subs(target_env)
                    .evalf()
                )
                Exclusive_predicted_perFunc_multiParameter: float = (
                    dict_models[functionName]["time_perFunc_multiParameter"]
                    .subs(target_env)
                    .evalf()
                )
                # コール回数の予測
                predicted_call: float = float(
                    np.array(
                        dict_models[functionName]["call_perFunc"].predict(
                            inputDF=testDF_oneCase_perFunc[expVar]
                        )
                    )
                )

                # 実測値の取得
                Exclusive_real_time: float = testDF_oneCase_perFunc.reset_index().loc[
                    0
                ][resVar]
                real_call: float = testDF_oneCase_perFunc.reset_index().loc[0]["#Call"]

                _series: pd.Series = pd.Series(
                    {
                        "functionName": functionName,
                        f"{resVar}_real_time": Exclusive_real_time,
                        f"{resVar}_predicted_all": Exclusive_predicted_all,
                        f"{resVar}_predicted_all_default": Exclusive_predicted_all_default,
                        f"{resVar}_predicted_all_multiParameter": Exclusive_predicted_all_multiParameter,
                        f"{resVar}_predicted_from_perCall": Exclusive_predicted_perFunc
                        * predicted_call,
                        f"{resVar}_predicted_from_perCall_default": Exclusive_predicted_perFunc_default
                        * predicted_call,
                        f"{resVar}_predicted_from_perCall_multiParameter": Exclusive_predicted_perFunc_multiParameter
                        * predicted_call,
                        "process": elem_process,
                        "iteration": elem_iteration,
                        "size": elem_size,
                    }
                )
                list_series.append(_series)

            resultDF_perFunc: pd.DataFrame = pd.concat(list_series, axis=1).T
            resultDF_perFunc = add_relativeErrorRateCol(
                inputDF=resultDF_perFunc,
                real_colName=f"{resVar}_real_time",
                predicted_colName=f"{resVar}_predicted_all",
                targetColName=f"相対誤差率(Extra-P)",
            )
            resultDF_perFunc = add_relativeErrorRateCol(
                inputDF=resultDF_perFunc,
                real_colName=f"{resVar}_real_time",
                predicted_colName=f"{resVar}_predicted_from_perCall",
                targetColName=f"相対誤差率(組合せ)",
            )
            # print(resultDF_perFunc)
            dict_resultDF_perFunc[
                f"p{elem_process}i{elem_iteration}s{elem_size}"
            ] = resultDF_perFunc
process=512, iteration=256, size=64
process=512, iteration=256, size=96
process=512, iteration=256, size=128
process=512, iteration=512, size=64
process=512, iteration=512, size=96
process=512, iteration=512, size=128
process=512, iteration=1024, size=64
process=512, iteration=1024, size=96
process=512, iteration=1024, size=128
process=729, iteration=256, size=64
process=729, iteration=256, size=96
process=729, iteration=256, size=128
process=729, iteration=512, size=64
process=729, iteration=512, size=96
process=729, iteration=512, size=128
process=729, iteration=1024, size=64
process=729, iteration=1024, size=96
process=729, iteration=1024, size=128
process=1000, iteration=256, size=64
process=1000, iteration=256, size=96
process=1000, iteration=256, size=128
process=1000, iteration=512, size=64
process=1000, iteration=512, size=96
process=1000, iteration=512, size=128
process=1000, iteration=1024, size=64
process=1000, iteration=1024, size=96
process=1000, iteration=1024, size=128
In [18]:
_list_series: list[pd.Series] = []
for key in dict_resultDF_perFunc.keys():
    targetDF = dict_resultDF_perFunc[key]

    relativeErrorOnTarget_perCall: float = ret_relativeError_fromSumOfCol(
        inputDF=targetDF,
        realCol="Exclusive_real_time",
        predictedCol="Exclusive_predicted_from_perCall",
    )
    relativeErrorOnTarget_perCall_default: float = ret_relativeError_fromSumOfCol(
        inputDF=targetDF,
        realCol="Exclusive_real_time",
        predictedCol="Exclusive_predicted_from_perCall_default",
    )
    relativeErrorOnTarget_perCall_multiParameter: float = (
        ret_relativeError_fromSumOfCol(
            inputDF=targetDF,
            realCol="Exclusive_real_time",
            predictedCol="Exclusive_predicted_from_perCall_multiParameter",
        )
    )

    relativeErrorOnTarget_all: float = ret_relativeError_fromSumOfCol(
        inputDF=targetDF,
        realCol="Exclusive_real_time",
        predictedCol="Exclusive_predicted_all",
    )
    relativeErrorOnTarget_all_default: float = ret_relativeError_fromSumOfCol(
        inputDF=targetDF,
        realCol="Exclusive_real_time",
        predictedCol="Exclusive_predicted_all_default",
    )
    relativeErrorOnTarget_all_multiParameter: float = ret_relativeError_fromSumOfCol(
        inputDF=targetDF,
        realCol="Exclusive_real_time",
        predictedCol="Exclusive_predicted_all_multiParameter",
    )

    _series = pd.Series(
        {
            "process": targetDF.reset_index().loc[0]["process"],
            "iteration": targetDF.reset_index().loc[0]["iteration"],
            "size": targetDF.reset_index().loc[0]["size"],
            "Extra-Pのみ": relativeErrorOnTarget_all,
            "Extra-Pのみ(default)": relativeErrorOnTarget_all_default,
            "Extra-Pのみ(multi-parameter)": relativeErrorOnTarget_all_multiParameter,
            "組合せ": relativeErrorOnTarget_perCall,
            "組合せ(default)": relativeErrorOnTarget_perCall_default,
            "組合せ(multi-parameter)": relativeErrorOnTarget_perCall_multiParameter,
            "条件": key,
        }
    )

    _list_series.append(_series)


resultDF: pd.DataFrame = pd.DataFrame(data=_list_series)

resultDF
Out[18]:
process iteration size Extra-Pのみ Extra-Pのみ(default) Extra-Pのみ(multi-parameter) 組合せ 組合せ(default) 組合せ(multi-parameter) 条件
0 512 256 64 12.6333141263911 12.6333141263911 12.6333141263911 0.507208978117047 0.507208978117047 0.507208978117047 p512i256s64
1 512 256 96 8.78762731489746 8.78762731489746 8.78762731489746 1.68957291981639 1.68957291981639 1.68957291981639 p512i256s96
2 512 256 128 9.21255948992760 9.21255948992760 9.21255948992760 0.0990770132824140 0.0990770132824140 0.0990770132824140 p512i256s128
3 512 512 64 13.3301888200060 13.3301888200060 13.3301888200060 0.160422824240916 0.160422824240916 0.160422824240916 p512i512s64
4 512 512 96 9.53668899316149 9.53668899316149 9.53668899316149 0.170231071504648 0.170231071504648 0.170231071504648 p512i512s96
5 512 512 128 8.87409086042504 8.87409086042504 8.87409086042504 0.425618036798869 0.425618036798869 0.425618036798869 p512i512s128
6 512 1024 64 15.7641189708340 15.7641189708340 15.7641189708340 2.82949404518662 2.82949404518662 2.82949404518662 p512i1024s64
7 512 1024 96 8.54672858981889 8.54672858981889 8.54672858981889 0.760886080019178 0.760886080019178 0.760886080019178 p512i1024s96
8 512 1024 128 8.40751501760401 8.40751501760401 8.40751501760401 0.417010936391316 0.417010936391316 0.417010936391316 p512i1024s128
9 729 256 64 14.3130133544459 14.3130133544459 14.3130133544459 3.76154927956209 3.76154927956209 3.76154927956209 p729i256s64
10 729 256 96 7.93703415766320 7.93703415766320 7.93703415766320 2.02957338955345 2.02957338955345 2.02957338955345 p729i256s96
11 729 256 128 8.46494699503024 8.46494699503024 8.46494699503024 0.684945221786042 0.684945221786042 0.684945221786042 p729i256s128
12 729 512 64 14.6495731810092 14.6495731810092 14.6495731810092 0.957466818284560 0.957466818284560 0.957466818284560 p729i512s64
13 729 512 96 9.26813284540945 9.26813284540945 9.26813284540945 0.656547350916434 0.656547350916434 0.656547350916434 p729i512s96
14 729 512 128 8.25169349468960 8.25169349468960 8.25169349468960 0.340345895005132 0.340345895005132 0.340345895005132 p729i512s128
15 729 1024 64 14.8793930637566 14.8793930637566 14.8793930637566 0.0817976553047962 0.0817976553047962 0.0817976553047962 p729i1024s64
16 729 1024 96 9.52582738419136 9.52582738419136 9.52582738419136 0.266803086211699 0.266803086211699 0.266803086211699 p729i1024s96
17 729 1024 128 8.65520760392545 8.65520760392545 8.65520760392545 0.440815082810937 0.440815082810937 0.440815082810937 p729i1024s128
18 1000 256 64 0.406657331497498 0.406657331497498 0.406657331497498 4.00981476929486 4.00981476929486 4.00981476929486 p1000i256s64
19 1000 256 96 7.27377910767353 7.27377910767353 7.27377910767353 0.638296016436708 0.638296016436708 0.638296016436708 p1000i256s96
20 1000 256 128 8.38268605155095 8.38268605155095 8.38268605155095 0.0962293661081201 0.0962293661081201 0.0962293661081201 p1000i256s128
21 1000 512 64 8.78484832879463 8.78484832879463 8.78484832879463 4.47486930123986 4.47486930123986 4.47486930123986 p1000i512s64
22 1000 512 96 9.87695128833714 9.87695128833714 9.87695128833714 0.255622230013760 0.255622230013760 0.255622230013760 p1000i512s96
23 1000 512 128 8.48722370921635 8.48722370921635 8.48722370921635 0.00464939710336938 0.00464939710336938 0.00464939710336938 p1000i512s128
24 1000 1024 64 15.0909877410756 15.0909877410756 15.0909877410756 1.90010926607053 1.90010926607053 1.90010926607053 p1000i1024s64
25 1000 1024 96 9.56472505537316 9.56472505537316 9.56472505537316 0.943611582698895 0.943611582698895 0.943611582698895 p1000i1024s96
26 1000 1024 128 9.17669412006006 9.17669412006006 9.17669412006006 0.692473529391278 0.692473529391278 0.692473529391278 p1000i1024s128
In [19]:
print(resultDF.to_csv())
,process,iteration,size,Extra-Pのみ,Extra-Pのみ(default),Extra-Pのみ(multi-parameter),組合せ,組合せ(default),組合せ(multi-parameter),条件
0,512,256,64,12.6333141263911,12.6333141263911,12.6333141263911,0.507208978117047,0.507208978117047,0.507208978117047,p512i256s64
1,512,256,96,8.78762731489746,8.78762731489746,8.78762731489746,1.68957291981639,1.68957291981639,1.68957291981639,p512i256s96
2,512,256,128,9.21255948992760,9.21255948992760,9.21255948992760,0.0990770132824140,0.0990770132824140,0.0990770132824140,p512i256s128
3,512,512,64,13.3301888200060,13.3301888200060,13.3301888200060,0.160422824240916,0.160422824240916,0.160422824240916,p512i512s64
4,512,512,96,9.53668899316149,9.53668899316149,9.53668899316149,0.170231071504648,0.170231071504648,0.170231071504648,p512i512s96
5,512,512,128,8.87409086042504,8.87409086042504,8.87409086042504,0.425618036798869,0.425618036798869,0.425618036798869,p512i512s128
6,512,1024,64,15.7641189708340,15.7641189708340,15.7641189708340,2.82949404518662,2.82949404518662,2.82949404518662,p512i1024s64
7,512,1024,96,8.54672858981889,8.54672858981889,8.54672858981889,0.760886080019178,0.760886080019178,0.760886080019178,p512i1024s96
8,512,1024,128,8.40751501760401,8.40751501760401,8.40751501760401,0.417010936391316,0.417010936391316,0.417010936391316,p512i1024s128
9,729,256,64,14.3130133544459,14.3130133544459,14.3130133544459,3.76154927956209,3.76154927956209,3.76154927956209,p729i256s64
10,729,256,96,7.93703415766320,7.93703415766320,7.93703415766320,2.02957338955345,2.02957338955345,2.02957338955345,p729i256s96
11,729,256,128,8.46494699503024,8.46494699503024,8.46494699503024,0.684945221786042,0.684945221786042,0.684945221786042,p729i256s128
12,729,512,64,14.6495731810092,14.6495731810092,14.6495731810092,0.957466818284560,0.957466818284560,0.957466818284560,p729i512s64
13,729,512,96,9.26813284540945,9.26813284540945,9.26813284540945,0.656547350916434,0.656547350916434,0.656547350916434,p729i512s96
14,729,512,128,8.25169349468960,8.25169349468960,8.25169349468960,0.340345895005132,0.340345895005132,0.340345895005132,p729i512s128
15,729,1024,64,14.8793930637566,14.8793930637566,14.8793930637566,0.0817976553047962,0.0817976553047962,0.0817976553047962,p729i1024s64
16,729,1024,96,9.52582738419136,9.52582738419136,9.52582738419136,0.266803086211699,0.266803086211699,0.266803086211699,p729i1024s96
17,729,1024,128,8.65520760392545,8.65520760392545,8.65520760392545,0.440815082810937,0.440815082810937,0.440815082810937,p729i1024s128
18,1000,256,64,0.406657331497498,0.406657331497498,0.406657331497498,4.00981476929486,4.00981476929486,4.00981476929486,p1000i256s64
19,1000,256,96,7.27377910767353,7.27377910767353,7.27377910767353,0.638296016436708,0.638296016436708,0.638296016436708,p1000i256s96
20,1000,256,128,8.38268605155095,8.38268605155095,8.38268605155095,0.0962293661081201,0.0962293661081201,0.0962293661081201,p1000i256s128
21,1000,512,64,8.78484832879463,8.78484832879463,8.78484832879463,4.47486930123986,4.47486930123986,4.47486930123986,p1000i512s64
22,1000,512,96,9.87695128833714,9.87695128833714,9.87695128833714,0.255622230013760,0.255622230013760,0.255622230013760,p1000i512s96
23,1000,512,128,8.48722370921635,8.48722370921635,8.48722370921635,0.00464939710336938,0.00464939710336938,0.00464939710336938,p1000i512s128
24,1000,1024,64,15.0909877410756,15.0909877410756,15.0909877410756,1.90010926607053,1.90010926607053,1.90010926607053,p1000i1024s64
25,1000,1024,96,9.56472505537316,9.56472505537316,9.56472505537316,0.943611582698895,0.943611582698895,0.943611582698895,p1000i1024s96
26,1000,1024,128,9.17669412006006,9.17669412006006,9.17669412006006,0.692473529391278,0.692473529391278,0.692473529391278,p1000i1024s128

総実行時間から総実行時間を予測する¶

In [20]:
filePath = f"./extra-p_docker/share/input_lulesh_AlltoAll.txt"

# 1. DFの作成
resVar: str = "Exclusive"
list_series_toMakeDF: list[pd.Series] = []
for elem_process in train_lulesh_processes:
    for elem_iteration in train_lulesh_iterations:
        for elem_size in train_lulesh_sizes:
            trainDF_oneCase: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )
            execTime_inThisCase: float = sum(trainDF_oneCase[resVar])
            _series: pd.Series = pd.Series(
                {
                    "process": elem_process,
                    "iteration": elem_iteration,
                    "size": elem_size,
                    resVar: execTime_inThisCase,
                }
            )
            list_series_toMakeDF.append(_series)
inputDFtoExtraP: pd.DataFrame = pd.DataFrame(list_series_toMakeDF)


# 2. Extra-Pへの入力ファイル作成
str_ExtraPinputData: str = gen_ExtraPinputDataFromDF(
    inputDF=inputDFtoExtraP, expVar=expVar, resVar=resVar
)
with open(filePath, mode="w") as f:
    f.write(str_ExtraPinputData)
# 3. Extra-Pの実行
res_str: str = subprocess.run(
    f"extrap --text {filePath} | grep Model",
    stdout=subprocess.PIPE,
    text=True,
    shell=True,
).stdout
res_str_default: str = subprocess.run(
    f"extrap --text {filePath} --modeler default --options poly_exponents=-1,0,1,2,3 log_exponents=0,1 force_combination_exponents=1 allow_negative_exponents=1 | grep Model",
    stdout=subprocess.PIPE,
    text=True,
    shell=True,
).stdout
res_str_multiParameter: str = subprocess.run(
    f"extrap --text {filePath} --modeler multi-parameter | grep Model",
    stdout=subprocess.PIPE,
    text=True,
    shell=True,
).stdout
# 4. 受け取った出力の整形
res_str = res_str.replace("Model: ", "")
res_str = convert_log(res_str)
res_str_default = res_str_default.replace("Model: ", "")
res_str_default = convert_log(res_str_default)
res_str_multiParameter = res_str_multiParameter.replace("Model: ", "")
res_str_multiParameter = convert_log(res_str_multiParameter)

print(f"res_str = {res_str}")
print(f"res_str_default = {res_str_default}")
print(f"res_str_multiParameter = {res_str_multiParameter}")

# 5. モデル化
model_sympy_whole = sympify(res_str, locals=dict_symbols)
model_sympy_whole_default = sympify(res_str_default, locals=dict_symbols)
model_sympy_whole_multiParameter = sympify(res_str_multiParameter, locals=dict_symbols)
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
res_str = 		9.933625875783926 + 3.977973652610428e-07 * iteration^(1) * size^(5/2) * 1/ln(2)*ln(size)^(2) + -1.113576890917575 * 1/ln(2)*ln(process)^(1) + -7.601955776753553e-07 * size^(5/2) * 1/ln(2)*ln(size)^(2)

res_str_default = 		9.933625875783926 + 3.977973652610428e-07 * iteration^(1) * size^(5/2) * 1/ln(2)*ln(size)^(2) + -1.113576890917575 * 1/ln(2)*ln(process)^(1) + -7.601955776753553e-07 * size^(5/2) * 1/ln(2)*ln(size)^(2)

res_str_multiParameter = 		9.933625875783926 + 3.977973652610428e-07 * iteration^(1) * size^(5/2) * 1/ln(2)*ln(size)^(2) + -1.113576890917575 * 1/ln(2)*ln(process)^(1) + -7.601955776753553e-07 * size^(5/2) * 1/ln(2)*ln(size)^(2)

Loading file: 100%|██████████| [00:00<00:00, Validating experiment]
Generating models: |          | [00:00<?]/usr/local/lib/python3.10/site-packages/extrap/modelers/single_parameter/basic.py:273: UserWarning: Number of measurements for a parameter needs to be at least 5 in order to create a performance model.
  warnings.warn(
Generating models: 100%|██████████| [00:00<00:00]
In [21]:
print(type(model_sympy_whole))
print(type(model_sympy_whole_default))
print(type(model_sympy_whole_multiParameter))
<class 'sympy.core.add.Add'>
<class 'sympy.core.add.Add'>
<class 'sympy.core.add.Add'>
In [22]:
list_series: list[pd.Series] = []
for elem_process in test_lulesh_processes:
    for elem_iteration in test_lulesh_iterations:
        for elem_size in test_lulesh_sizes:

            print(
                f"process={elem_process}, iteration={elem_iteration}, size={elem_size}"
            )
            condition: str = f"p{elem_process}i{elem_iteration}s{elem_size}"

            # 実時間の取得
            testDF_oneCase: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )
            exclusive_real_time: float = sum(testDF_oneCase[resVar])

            target_env = [
                (dict_symbols["size"], elem_size),
                (dict_symbols["iteration"], elem_iteration),
                (dict_symbols["process"], elem_process),
            ]
            # 総実行時間の予測
            exclusive_predicted_time: float = model_sympy_whole.subs(target_env).evalf()
            exclusive_predicted_time_default: float = model_sympy_whole_default.subs(target_env).evalf()
            exclusive_predicted_time_multiParameter: float = (model_sympy_whole_multiParameter.subs(target_env).evalf())

            _series: pd.Series = pd.Series(
                {
                    "exclusive_real_time": exclusive_real_time,
                    "exclusive_predicted_time": exclusive_predicted_time,
                    "exclusive_predicted_time_default": exclusive_predicted_time_default,
                    "exclusive_predicted_time_multiParameter": exclusive_predicted_time_multiParameter,
                    "条件": condition,
                }
            )

            list_series.append(_series)

resultDF2: pd.DataFrame = pd.DataFrame(list_series)
resultDF2 = add_relativeErrorRateCol(
    inputDF=resultDF2,
    real_colName="exclusive_real_time",
    predicted_colName="exclusive_predicted_time",
    targetColName="Extra-P単体による全体予測",
)
resultDF2 = add_relativeErrorRateCol(
    inputDF=resultDF2,
    real_colName="exclusive_real_time",
    predicted_colName="exclusive_predicted_time_default",
    targetColName="Extra-P単体による全体予測(default)",
)
resultDF2 = add_relativeErrorRateCol(
    inputDF=resultDF2,
    real_colName="exclusive_real_time",
    predicted_colName="exclusive_predicted_time_multiParameter",
    targetColName="Extra-P単体による全体予測(multi-parameter)",
)

resultDF2
process=512, iteration=256, size=64
process=512, iteration=256, size=96
process=512, iteration=256, size=128
process=512, iteration=512, size=64
process=512, iteration=512, size=96
process=512, iteration=512, size=128
process=512, iteration=1024, size=64
process=512, iteration=1024, size=96
process=512, iteration=1024, size=128
process=729, iteration=256, size=64
process=729, iteration=256, size=96
process=729, iteration=256, size=128
process=729, iteration=512, size=64
process=729, iteration=512, size=96
process=729, iteration=512, size=128
process=729, iteration=1024, size=64
process=729, iteration=1024, size=96
process=729, iteration=1024, size=128
process=1000, iteration=256, size=64
process=1000, iteration=256, size=96
process=1000, iteration=256, size=128
process=1000, iteration=512, size=64
process=1000, iteration=512, size=96
process=1000, iteration=512, size=128
process=1000, iteration=1024, size=64
process=1000, iteration=1024, size=96
process=1000, iteration=1024, size=128
Out[22]:
exclusive_real_time exclusive_predicted_time exclusive_predicted_time_default exclusive_predicted_time_multiParameter 条件 Extra-P単体による全体予測 Extra-P単体による全体予測(default) Extra-P単体による全体予測(multi-parameter)
0 132.149312 82.5581576693674 82.5581576693674 82.5581576693674 p512i256s64 37.5266080780388 37.5266080780388 37.5266080780388
1 471.983715 274.231705131693 274.231705131693 274.231705131693 p512i256s96 41.8980578293707 41.8980578293707 41.8980578293707
2 1143.805716 636.258741337536 636.258741337536 636.258741337536 p512i256s128 44.3735302064036 44.3735302064036 44.3735302064036
3 263.338648 165.826470359938 165.826470359938 165.826470359938 p512i512s64 37.0291935881498 37.0291935881498 37.0291935881498
4 955.757055 550.615148688673 550.615148688673 550.615148688673 p512i512s96 42.3896327974435 42.3896327974435 42.3896327974435
5 2296.174716 1277.39203900681 1277.39203900681 1277.39203900681 p512i512s128 44.3686915433420 44.3686915433420 44.3686915433420
6 536.093316 332.363095741079 332.363095741079 332.363095741079 p512i1024s64 38.0027532959863 38.0027532959863 38.0027532959863
7 1890.687721 1103.38203580263 1103.38203580263 1103.38203580263 p512i1024s96 41.6412333065201 41.6412333065201 41.6412333065201
8 4578.817049 2559.65863434536 2559.65863434536 2559.65863434536 p512i1024s128 44.0978181335054 44.0978181335054 44.0978181335054
9 143.068651 81.9904840049816 81.9904840049816 81.9904840049816 p729i256s64 42.6915098023799 42.6915098023799 42.6915098023799
10 475.673048 273.664031467307 273.664031467307 273.664031467307 p729i256s96 42.4680392159481 42.4680392159481 42.4680392159481
11 1142.907718 635.691067673150 635.691067673150 635.691067673150 p729i256s128 44.3794929769896 44.3794929769896 44.3794929769896
12 276.213659 165.258796695552 165.258796695552 165.258796695552 p729i512s64 40.1699403867848 40.1699403867848 40.1699403867848
13 961.854712 550.047475024287 550.047475024287 550.047475024287 p729i512s96 42.8138711596887 42.8138711596887 42.8138711596887
14 2290.164719 1276.82436534243 1276.82436534243 1276.82436534243 p729i512s128 44.2474877493777 44.2474877493777 44.2474877493777
15 540.249977 331.795422076693 331.795422076693 331.795422076693 p729i1024s64 38.5848336225292 38.5848336225292 38.5848336225292
16 1921.644394 1102.81436213825 1102.81436213825 1102.81436213825 p729i1024s96 42.6109031659102 42.6109031659102 42.6109031659102
17 4603.171052 2559.09096068098 2559.09096068098 2559.09096068098 p729i1024s128 44.4059120984211 44.4059120984211 44.4059120984211
18 140.086988 81.4826826083564 81.4826826083564 81.4826826083564 p1000i256s64 41.8342246445247 41.8342246445247 41.8342246445247
19 490.789037 273.156230070682 273.156230070682 273.156230070682 p1000i256s96 44.3434531931994 44.3434531931994 44.3434531931994
20 1160.934382 635.183266276524 635.183266276524 635.183266276524 p1000i256s128 45.2868933647090 45.2868933647090 45.2868933647090
21 277.380985 164.750995298927 164.750995298927 164.750995298927 p1000i512s64 40.6047982824067 40.6047982824067 40.6047982824067
22 988.088711 549.539673627662 549.539673627662 549.539673627662 p1000i512s96 44.3835692477177 44.3835692477177 44.3835692477177
23 2316.158048 1276.31656394580 1276.31656394580 1276.31656394580 p1000i512s128 44.8951005291249 44.8951005291249 44.8951005291249
24 562.736317 331.287620680068 331.287620680068 331.287620680068 p1000i1024s64 41.1291557213599 41.1291557213599 41.1291557213599
25 1943.520717 1102.30656074162 1102.30656074162 1102.30656074162 p1000i1024s96 43.2830043373717 43.2830043373717 43.2830043373717
26 4651.948382 2558.58315928435 2558.58315928435 2558.58315928435 p1000i1024s128 44.9997517286953 44.9997517286953 44.9997517286953
In [23]:
mergedDF: pd.DataFrame = pd.merge(
    left=resultDF,
    right=resultDF2.drop(columns=["exclusive_real_time", "exclusive_predicted_time", "exclusive_predicted_time_default", "exclusive_predicted_time_multiParameter"]),
    on="条件",
)
print(mergedDF.to_csv())
,process,iteration,size,Extra-Pのみ,Extra-Pのみ(default),Extra-Pのみ(multi-parameter),組合せ,組合せ(default),組合せ(multi-parameter),条件,Extra-P単体による全体予測,Extra-P単体による全体予測(default),Extra-P単体による全体予測(multi-parameter)
0,512,256,64,12.6333141263911,12.6333141263911,12.6333141263911,0.507208978117047,0.507208978117047,0.507208978117047,p512i256s64,37.5266080780388,37.5266080780388,37.5266080780388
1,512,256,96,8.78762731489746,8.78762731489746,8.78762731489746,1.68957291981639,1.68957291981639,1.68957291981639,p512i256s96,41.8980578293707,41.8980578293707,41.8980578293707
2,512,256,128,9.21255948992760,9.21255948992760,9.21255948992760,0.0990770132824140,0.0990770132824140,0.0990770132824140,p512i256s128,44.3735302064036,44.3735302064036,44.3735302064036
3,512,512,64,13.3301888200060,13.3301888200060,13.3301888200060,0.160422824240916,0.160422824240916,0.160422824240916,p512i512s64,37.0291935881498,37.0291935881498,37.0291935881498
4,512,512,96,9.53668899316149,9.53668899316149,9.53668899316149,0.170231071504648,0.170231071504648,0.170231071504648,p512i512s96,42.3896327974435,42.3896327974435,42.3896327974435
5,512,512,128,8.87409086042504,8.87409086042504,8.87409086042504,0.425618036798869,0.425618036798869,0.425618036798869,p512i512s128,44.3686915433420,44.3686915433420,44.3686915433420
6,512,1024,64,15.7641189708340,15.7641189708340,15.7641189708340,2.82949404518662,2.82949404518662,2.82949404518662,p512i1024s64,38.0027532959863,38.0027532959863,38.0027532959863
7,512,1024,96,8.54672858981889,8.54672858981889,8.54672858981889,0.760886080019178,0.760886080019178,0.760886080019178,p512i1024s96,41.6412333065201,41.6412333065201,41.6412333065201
8,512,1024,128,8.40751501760401,8.40751501760401,8.40751501760401,0.417010936391316,0.417010936391316,0.417010936391316,p512i1024s128,44.0978181335054,44.0978181335054,44.0978181335054
9,729,256,64,14.3130133544459,14.3130133544459,14.3130133544459,3.76154927956209,3.76154927956209,3.76154927956209,p729i256s64,42.6915098023799,42.6915098023799,42.6915098023799
10,729,256,96,7.93703415766320,7.93703415766320,7.93703415766320,2.02957338955345,2.02957338955345,2.02957338955345,p729i256s96,42.4680392159481,42.4680392159481,42.4680392159481
11,729,256,128,8.46494699503024,8.46494699503024,8.46494699503024,0.684945221786042,0.684945221786042,0.684945221786042,p729i256s128,44.3794929769896,44.3794929769896,44.3794929769896
12,729,512,64,14.6495731810092,14.6495731810092,14.6495731810092,0.957466818284560,0.957466818284560,0.957466818284560,p729i512s64,40.1699403867848,40.1699403867848,40.1699403867848
13,729,512,96,9.26813284540945,9.26813284540945,9.26813284540945,0.656547350916434,0.656547350916434,0.656547350916434,p729i512s96,42.8138711596887,42.8138711596887,42.8138711596887
14,729,512,128,8.25169349468960,8.25169349468960,8.25169349468960,0.340345895005132,0.340345895005132,0.340345895005132,p729i512s128,44.2474877493777,44.2474877493777,44.2474877493777
15,729,1024,64,14.8793930637566,14.8793930637566,14.8793930637566,0.0817976553047962,0.0817976553047962,0.0817976553047962,p729i1024s64,38.5848336225292,38.5848336225292,38.5848336225292
16,729,1024,96,9.52582738419136,9.52582738419136,9.52582738419136,0.266803086211699,0.266803086211699,0.266803086211699,p729i1024s96,42.6109031659102,42.6109031659102,42.6109031659102
17,729,1024,128,8.65520760392545,8.65520760392545,8.65520760392545,0.440815082810937,0.440815082810937,0.440815082810937,p729i1024s128,44.4059120984211,44.4059120984211,44.4059120984211
18,1000,256,64,0.406657331497498,0.406657331497498,0.406657331497498,4.00981476929486,4.00981476929486,4.00981476929486,p1000i256s64,41.8342246445247,41.8342246445247,41.8342246445247
19,1000,256,96,7.27377910767353,7.27377910767353,7.27377910767353,0.638296016436708,0.638296016436708,0.638296016436708,p1000i256s96,44.3434531931994,44.3434531931994,44.3434531931994
20,1000,256,128,8.38268605155095,8.38268605155095,8.38268605155095,0.0962293661081201,0.0962293661081201,0.0962293661081201,p1000i256s128,45.2868933647090,45.2868933647090,45.2868933647090
21,1000,512,64,8.78484832879463,8.78484832879463,8.78484832879463,4.47486930123986,4.47486930123986,4.47486930123986,p1000i512s64,40.6047982824067,40.6047982824067,40.6047982824067
22,1000,512,96,9.87695128833714,9.87695128833714,9.87695128833714,0.255622230013760,0.255622230013760,0.255622230013760,p1000i512s96,44.3835692477177,44.3835692477177,44.3835692477177
23,1000,512,128,8.48722370921635,8.48722370921635,8.48722370921635,0.00464939710336938,0.00464939710336938,0.00464939710336938,p1000i512s128,44.8951005291249,44.8951005291249,44.8951005291249
24,1000,1024,64,15.0909877410756,15.0909877410756,15.0909877410756,1.90010926607053,1.90010926607053,1.90010926607053,p1000i1024s64,41.1291557213599,41.1291557213599,41.1291557213599
25,1000,1024,96,9.56472505537316,9.56472505537316,9.56472505537316,0.943611582698895,0.943611582698895,0.943611582698895,p1000i1024s96,43.2830043373717,43.2830043373717,43.2830043373717
26,1000,1024,128,9.17669412006006,9.17669412006006,9.17669412006006,0.692473529391278,0.692473529391278,0.692473529391278,p1000i1024s128,44.9997517286953,44.9997517286953,44.9997517286953

In [24]:
mergedDF
Out[24]:
process iteration size Extra-Pのみ Extra-Pのみ(default) Extra-Pのみ(multi-parameter) 組合せ 組合せ(default) 組合せ(multi-parameter) 条件 Extra-P単体による全体予測 Extra-P単体による全体予測(default) Extra-P単体による全体予測(multi-parameter)
0 512 256 64 12.6333141263911 12.6333141263911 12.6333141263911 0.507208978117047 0.507208978117047 0.507208978117047 p512i256s64 37.5266080780388 37.5266080780388 37.5266080780388
1 512 256 96 8.78762731489746 8.78762731489746 8.78762731489746 1.68957291981639 1.68957291981639 1.68957291981639 p512i256s96 41.8980578293707 41.8980578293707 41.8980578293707
2 512 256 128 9.21255948992760 9.21255948992760 9.21255948992760 0.0990770132824140 0.0990770132824140 0.0990770132824140 p512i256s128 44.3735302064036 44.3735302064036 44.3735302064036
3 512 512 64 13.3301888200060 13.3301888200060 13.3301888200060 0.160422824240916 0.160422824240916 0.160422824240916 p512i512s64 37.0291935881498 37.0291935881498 37.0291935881498
4 512 512 96 9.53668899316149 9.53668899316149 9.53668899316149 0.170231071504648 0.170231071504648 0.170231071504648 p512i512s96 42.3896327974435 42.3896327974435 42.3896327974435
5 512 512 128 8.87409086042504 8.87409086042504 8.87409086042504 0.425618036798869 0.425618036798869 0.425618036798869 p512i512s128 44.3686915433420 44.3686915433420 44.3686915433420
6 512 1024 64 15.7641189708340 15.7641189708340 15.7641189708340 2.82949404518662 2.82949404518662 2.82949404518662 p512i1024s64 38.0027532959863 38.0027532959863 38.0027532959863
7 512 1024 96 8.54672858981889 8.54672858981889 8.54672858981889 0.760886080019178 0.760886080019178 0.760886080019178 p512i1024s96 41.6412333065201 41.6412333065201 41.6412333065201
8 512 1024 128 8.40751501760401 8.40751501760401 8.40751501760401 0.417010936391316 0.417010936391316 0.417010936391316 p512i1024s128 44.0978181335054 44.0978181335054 44.0978181335054
9 729 256 64 14.3130133544459 14.3130133544459 14.3130133544459 3.76154927956209 3.76154927956209 3.76154927956209 p729i256s64 42.6915098023799 42.6915098023799 42.6915098023799
10 729 256 96 7.93703415766320 7.93703415766320 7.93703415766320 2.02957338955345 2.02957338955345 2.02957338955345 p729i256s96 42.4680392159481 42.4680392159481 42.4680392159481
11 729 256 128 8.46494699503024 8.46494699503024 8.46494699503024 0.684945221786042 0.684945221786042 0.684945221786042 p729i256s128 44.3794929769896 44.3794929769896 44.3794929769896
12 729 512 64 14.6495731810092 14.6495731810092 14.6495731810092 0.957466818284560 0.957466818284560 0.957466818284560 p729i512s64 40.1699403867848 40.1699403867848 40.1699403867848
13 729 512 96 9.26813284540945 9.26813284540945 9.26813284540945 0.656547350916434 0.656547350916434 0.656547350916434 p729i512s96 42.8138711596887 42.8138711596887 42.8138711596887
14 729 512 128 8.25169349468960 8.25169349468960 8.25169349468960 0.340345895005132 0.340345895005132 0.340345895005132 p729i512s128 44.2474877493777 44.2474877493777 44.2474877493777
15 729 1024 64 14.8793930637566 14.8793930637566 14.8793930637566 0.0817976553047962 0.0817976553047962 0.0817976553047962 p729i1024s64 38.5848336225292 38.5848336225292 38.5848336225292
16 729 1024 96 9.52582738419136 9.52582738419136 9.52582738419136 0.266803086211699 0.266803086211699 0.266803086211699 p729i1024s96 42.6109031659102 42.6109031659102 42.6109031659102
17 729 1024 128 8.65520760392545 8.65520760392545 8.65520760392545 0.440815082810937 0.440815082810937 0.440815082810937 p729i1024s128 44.4059120984211 44.4059120984211 44.4059120984211
18 1000 256 64 0.406657331497498 0.406657331497498 0.406657331497498 4.00981476929486 4.00981476929486 4.00981476929486 p1000i256s64 41.8342246445247 41.8342246445247 41.8342246445247
19 1000 256 96 7.27377910767353 7.27377910767353 7.27377910767353 0.638296016436708 0.638296016436708 0.638296016436708 p1000i256s96 44.3434531931994 44.3434531931994 44.3434531931994
20 1000 256 128 8.38268605155095 8.38268605155095 8.38268605155095 0.0962293661081201 0.0962293661081201 0.0962293661081201 p1000i256s128 45.2868933647090 45.2868933647090 45.2868933647090
21 1000 512 64 8.78484832879463 8.78484832879463 8.78484832879463 4.47486930123986 4.47486930123986 4.47486930123986 p1000i512s64 40.6047982824067 40.6047982824067 40.6047982824067
22 1000 512 96 9.87695128833714 9.87695128833714 9.87695128833714 0.255622230013760 0.255622230013760 0.255622230013760 p1000i512s96 44.3835692477177 44.3835692477177 44.3835692477177
23 1000 512 128 8.48722370921635 8.48722370921635 8.48722370921635 0.00464939710336938 0.00464939710336938 0.00464939710336938 p1000i512s128 44.8951005291249 44.8951005291249 44.8951005291249
24 1000 1024 64 15.0909877410756 15.0909877410756 15.0909877410756 1.90010926607053 1.90010926607053 1.90010926607053 p1000i1024s64 41.1291557213599 41.1291557213599 41.1291557213599
25 1000 1024 96 9.56472505537316 9.56472505537316 9.56472505537316 0.943611582698895 0.943611582698895 0.943611582698895 p1000i1024s96 43.2830043373717 43.2830043373717 43.2830043373717
26 1000 1024 128 9.17669412006006 9.17669412006006 9.17669412006006 0.692473529391278 0.692473529391278 0.692473529391278 p1000i1024s128 44.9997517286953 44.9997517286953 44.9997517286953
In [25]:
# 実時間の取得
trainDF_oneCase: pd.DataFrame = ret_averaged_rawDF_lulesh(
    list_process=[train_lulesh_processes[-1]],
    list_iteration=[train_lulesh_iterations[-1]],
    list_size=[train_lulesh_sizes[-1]],
    list_csvDir=list_csvDir,
    resVar=resVar,
)
exclusive_real_time: float = sum(trainDF_oneCase[resVar])

target_env = [
    (dict_symbols["size"], train_lulesh_sizes[-1]),
    (dict_symbols["iteration"], train_lulesh_iterations[-1]),
    (dict_symbols["process"], train_lulesh_processes[-1]),
]
# 総実行時間の予測
exclusive_predicted_time: float = model_sympy_whole.subs(target_env).evalf()

_series: pd.Series = pd.Series(
    {
        "exclusive_real_time": exclusive_real_time,
        "exclusive_predicted_time": exclusive_predicted_time,
        "条件": condition,
    }
)

_series
Out[25]:
exclusive_real_time                26.232715
exclusive_predicted_time    17.8654504325857
条件                            p1000i1024s128
dtype: object
In [26]:
print(train_lulesh_processes[-1])
print(train_lulesh_iterations[-1])
print(train_lulesh_sizes[-1])
343
128
48
In [27]:
_process = 64
_iteration = 64
_size = 24

# 実時間の取得
trainDF_oneCase: pd.DataFrame = ret_averaged_rawDF_lulesh(
    list_process=[_process],
    list_iteration=[_iteration],
    list_size=[_size],
    list_csvDir=list_csvDir,
    resVar=resVar,
)
exclusive_real_time: float = sum(trainDF_oneCase[resVar])

target_env = [
    (dict_symbols["size"], _size),
    (dict_symbols["iteration"], _iteration),
    (dict_symbols["process"], _process),
]
# 総実行時間の予測
exclusive_predicted_time: float = model_sympy_whole.subs(target_env).evalf()

_series: pd.Series = pd.Series(
    {
        "exclusive_real_time": exclusive_real_time,
        "exclusive_predicted_time": exclusive_predicted_time,
        # "条件" :condition
    }
)

_series
Out[27]:
exclusive_real_time                 3.383667
exclusive_predicted_time    4.26771526403966
dtype: object

表を作成する¶

|平均絶対誤差率(%)|相対コスト(%)|

In [28]:
# 1. ✅モデル構築(<-上の方で作成されたモデルを使う)
# 2. ✅各条件下で1つのDFをループで回しつつ作成
# 3. ✅条件が絞られたDFで関数ごとにループを回す
# 4. ✅予測を行う
# 5. ✅目標のテーブル形式にする

resVar = "Exclusive"

_list_series: list[pd.Series] = []
for elem_process in test_lulesh_processes:
    for elem_iteration in test_lulesh_iterations:
        for elem_size in test_lulesh_sizes:
            targetDF_oneCondition: pd.DataFrame = ret_averaged_rawDF_lulesh(
                list_process=[elem_process],
                list_iteration=[elem_iteration],
                list_size=[elem_size],
                list_csvDir=list_csvDir,
                resVar=resVar,
            )

            for functionName in functionNames:

                targetDF_oneCondition_perCall: pd.DataFrame = targetDF_oneCondition[
                    targetDF_oneCondition["Name"] == functionName
                ]

                if len(targetDF_oneCondition_perCall) != 1:
                    warnings.warn("len(targetDF_oneCondition_perCall) != 1")
                    exit

                predicted_call: float = float(
                    np.array(
                        dict_models[functionName]["call_perFunc"].predict(
                            inputDF=targetDF_oneCondition_perCall[expVar]
                        )
                    )
                )
                real_call: float = targetDF_oneCondition_perCall.reset_index().loc[0][
                    "#Call"
                ]
                _list_series.append(
                    pd.Series(
                        {
                            "predicted_call": predicted_call,
                            "real_call": real_call,
                            "functionName": functionName,
                            "process": elem_process,
                            "iteration": elem_iteration,
                            "size": elem_size,
                        }
                    )
                )

resultDF_aboutCall: pd.DataFrame = pd.DataFrame(data=_list_series)
resultDF_aboutCall = add_relativeErrorRateCol(
    inputDF=resultDF_aboutCall,
    real_colName="real_call",
    predicted_colName="predicted_call",
    targetColName="absolute_relative_error",
)
In [29]:
resultDF_aboutCall
Out[29]:
predicted_call real_call functionName process iteration size absolute_relative_error
0 1.000 1.000 .TAU_application 512 256 64 0.000000e+00
1 255.000 255.000 MPI_Allreduce() 512 256 64 0.000000e+00
2 1.000 1.000 MPI_Barrier() 512 256 64 0.000000e+00
3 2309.000 2309.000 MPI_Comm_rank() 512 256 64 3.938912e-14
4 1.000 1.000 MPI_Comm_size() 512 256 64 0.000000e+00
... ... ... ... ... ... ... ...
859 1.000 1.000 void_Domain::SetupSymmetryPlanes(Int_t) 1000 1024 128 0.000000e+00
860 1.000 1.000 void_Domain::~Domain() 1000 1024 128 0.000000e+00
861 1.000 1.000 void_InitMeshDecomp(Int_t_Int_t_Int_t 1000 1024 128 0.000000e+00
862 1.000 1.000 void_ParseCommandLineOptions(int_char_**_Int_t... 1000 1024 128 0.000000e+00
863 0.001 0.001 void_VerifyAndWriteFinalOutput(Real_t_Domain 1000 1024 128 6.051247e-04

864 rows × 7 columns

In [30]:
_list_series: [pd.Series] = []
for elem_process in test_lulesh_processes:
    for elem_iteration in test_lulesh_iterations:
        for elem_size in test_lulesh_sizes:
            resultDF_aboutCall_oneCondition: pd.DataFrame = resultDF_aboutCall[
                (resultDF_aboutCall["process"] == elem_process)
                & (resultDF_aboutCall["iteration"] == elem_iteration)
                & (resultDF_aboutCall["size"] == elem_size)
            ]
            _list_series.append(
                pd.Series(
                    {
                        "process": elem_process,
                        "iteration": elem_iteration,
                        "size": elem_size,
                        "MAPE": resultDF_aboutCall_oneCondition.mean()[
                            "absolute_relative_error"
                        ],
                    }
                )
            )

resultDF_aboutCall_withMAPE: pd.DataFrame = pd.DataFrame(data=_list_series)
resultDF_aboutCall_withMAPE
/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

/tmp/ipykernel_11192/3753474081.py:16: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

Out[30]:
process iteration size MAPE
0 512.0 256.0 64.0 0.993523
1 512.0 256.0 96.0 1.001713
2 512.0 256.0 128.0 1.011022
3 512.0 512.0 64.0 1.097014
4 512.0 512.0 96.0 1.015928
5 512.0 512.0 128.0 0.987108
6 512.0 1024.0 64.0 1.519404
7 512.0 1024.0 96.0 1.207243
8 512.0 1024.0 128.0 1.096240
9 729.0 256.0 64.0 2.094636
10 729.0 256.0 96.0 2.083630
11 729.0 256.0 128.0 2.097768
12 729.0 512.0 64.0 2.188117
13 729.0 512.0 96.0 2.101251
14 729.0 512.0 128.0 2.070297
15 729.0 1024.0 64.0 2.598912
16 729.0 1024.0 96.0 2.289654
17 729.0 1024.0 128.0 2.178994
18 1000.0 256.0 64.0 3.561134
19 1000.0 256.0 96.0 3.486965
20 1000.0 256.0 128.0 3.509156
21 1000.0 512.0 64.0 3.627803
22 1000.0 512.0 96.0 3.524894
23 1000.0 512.0 128.0 3.488279
24 1000.0 1024.0 64.0 4.016989
25 1000.0 1024.0 96.0 3.706513
26 1000.0 1024.0 128.0 3.594678
In [31]:
DF_pis_time_at_target
Out[31]:
p i s time cost
480 512.0 256.0 64.0 130.0 66560.0
489 512.0 256.0 64.0 130.0 66560.0
498 512.0 256.0 64.0 130.0 66560.0
481 512.0 256.0 96.0 470.0 240640.0
490 512.0 256.0 96.0 470.0 240640.0
... ... ... ... ... ...
550 1000.0 1024.0 96.0 1900.0 1900000.0
559 1000.0 1024.0 96.0 2000.0 2000000.0
542 1000.0 1024.0 128.0 4600.0 4600000.0
551 1000.0 1024.0 128.0 4700.0 4700000.0
560 1000.0 1024.0 128.0 4700.0 4700000.0

81 rows × 5 columns

In [32]:
# resultDF_aboutCall_withMAPE
# DF_pis_time_at_target

objective_DF: pd.DataFrame = pd.merge(
    resultDF_aboutCall_withMAPE,
    DF_pis_time_at_target,
    how="outer",
    left_on=["process", "iteration", "size"],
    right_on=["p", "i", "s"],
).drop(columns=["p", "i", "s", "time"])
In [33]:
objective_DF["relative_cost"] = costToBuildModel / objective_DF["cost"]
In [34]:
objective_DF = objective_DF.drop(columns=["cost"])
In [35]:
condition_col: list[str] = ["process", "iteration", "size"]
objective_DF = objective_DF.groupby(condition_col).aggregate(np.mean)

objective_DF
Out[35]:
MAPE relative_cost
process iteration size
512.0 256.0 64.0 0.993523 1.195538
96.0 1.001713 0.330681
128.0 1.011022 0.141291
512.0 64.0 1.097014 0.590389
96.0 1.015928 0.163032
128.0 0.987108 0.067574
1024.0 64.0 1.519404 0.289625
96.0 1.207243 0.081800
128.0 1.096240 0.034037
729.0 256.0 64.0 2.094636 0.762362
96.0 2.083630 0.230635
128.0 2.097768 0.099233
512.0 64.0 2.188117 0.399470
96.0 2.101251 0.113705
128.0 2.070297 0.047459
1024.0 64.0 2.598912 0.202188
96.0 2.289654 0.057451
128.0 2.178994 0.023730
1000.0 256.0 64.0 3.561134 0.582967
96.0 3.486965 0.163526
128.0 3.509156 0.068322
512.0 64.0 3.627803 0.287947
96.0 3.524894 0.080652
128.0 3.488279 0.034598
1024.0 64.0 4.016989 0.142128
96.0 3.706513 0.041184
128.0 3.594678 0.017054
In [36]:
print(objective_DF.to_csv())
process,iteration,size,MAPE,relative_cost
512.0,256.0,64.0,0.9935228424782739,1.1955379691207877
512.0,256.0,96.0,1.0017129535328058,0.3306807148631966
512.0,256.0,128.0,1.01102184985611,0.1412908508960931
512.0,512.0,64.0,1.0970138085403747,0.5903891205534754
512.0,512.0,96.0,1.0159282298637726,0.1630318772949437
512.0,512.0,128.0,0.9871075506651344,0.06757388521117497
512.0,1024.0,64.0,1.5194043925948364,0.28962485159227097
512.0,1024.0,96.0,1.2072433542690577,0.08179996630826443
512.0,1024.0,128.0,1.0962401664788017,0.034037216254517756
729.0,256.0,64.0,2.0946356523227534,0.7623620784910629
729.0,256.0,96.0,2.0836302318077387,0.23063480433074038
729.0,256.0,128.0,2.0977683231348347,0.09923308046474577
729.0,512.0,64.0,2.1881172819131347,0.39947002850226143
729.0,512.0,96.0,2.1012511001702263,0.11370457136585453
729.0,512.0,128.0,2.0702972079954542,0.04745929935270451
729.0,1024.0,64.0,2.5989122751640394,0.20218769038554188
729.0,1024.0,96.0,2.2896535946804377,0.05745073079537913
729.0,1024.0,128.0,2.178993503376056,0.023729649676352254
1000.0,256.0,64.0,3.561134026442501,0.5829670858950888
1000.0,256.0,96.0,3.4869652443523176,0.1635257376357504
1000.0,256.0,128.0,3.5091560289523542,0.06832197589997746
1000.0,512.0,64.0,3.627803425126743,0.28794702486580537
1000.0,512.0,96.0,3.5248944816066228,0.08065219243894899
1000.0,512.0,128.0,3.4882787904946517,0.03459782922812158
1000.0,1024.0,64.0,4.016988691058634,0.1421284447790995
1000.0,1024.0,96.0,3.706513299954468,0.04118355637066753
1000.0,1024.0,128.0,3.5946778500094716,0.01705353993868404

モデルに対する誤差率のMAPEを算出する¶

In [37]:
_list_series: list[pd.Series] = []
for i, sr in trainDF.iterrows():
    functionName = sr["Name"]
    DF_to_predict: pd.DataFrame = pd.DataFrame(sr).T[expVar]
    DF_to_predict = DF_to_predict.astype(
        {"process": "int32", "iteration": "int32", "size": "int32"}
    )

    predicted_call: float = float(
        dict_models[functionName]["call_perFunc"].predict(inputDF=DF_to_predict)
    )

    real_call: float = sr["#Call"]

    _list_series.append(
        pd.Series(
            {
                "process": sr["process"],
                "iteration": sr["iteration"],
                "size": sr["size"],
                "predicted_call": predicted_call,
                "real_call": real_call,
            }
        )
    )
DF_result_lulesh_about_call: pd.DataFrame = pd.DataFrame(_list_series)
DF_result_lulesh_about_call = add_relativeErrorRateCol(
    inputDF=DF_result_lulesh_about_call,
    real_colName="real_call",
    predicted_colName="predicted_call",
    targetColName="relative_error_rate",
)
In [38]:
DF_result_lulesh_about_call
Out[38]:
process iteration size predicted_call real_call relative_error_rate
0 8.0 8.0 16.0 1.000000 1.000000 0.000000
1 8.0 8.0 16.0 1.000000 1.000000 0.000000
2 8.0 8.0 16.0 1.000000 1.000000 0.000000
3 8.0 8.0 16.0 1.000000 1.000000 0.000000
4 8.0 8.0 16.0 8.000000 8.000000 0.000000
... ... ... ... ... ... ...
3835 343.0 128.0 48.0 1.000000 1.000000 0.000000
3836 343.0 128.0 48.0 1.000000 1.000000 0.000000
3837 343.0 128.0 48.0 2.000000 2.000000 0.000000
3838 343.0 128.0 48.0 1.000000 1.000000 0.000000
3839 343.0 128.0 48.0 0.002915 0.002915 0.000143

3840 rows × 6 columns

In [39]:
DF_result_lulesh_about_call.mean()
Out[39]:
process                  130.500000
iteration                 49.600000
size                      30.000000
predicted_call         63918.435869
real_call              63915.372350
relative_error_rate        0.475022
dtype: float64
In [40]:
_list_series: list[pd.Series] = []
for elem_process in train_lulesh_processes:
    for elem_iteration in train_lulesh_iterations:
        for elem_size in train_lulesh_sizes:
            for functionName in functionNames:
                trainDF_oneCondition: pd.DataFrame = trainDF[
                    (trainDF["Name"] == functionName)
                    & (trainDF["process"] == elem_process)
                    & (trainDF["iteration"] == elem_iteration)
                    & (trainDF["size"] == elem_size)
                ]

                predicted_call: float = float(
                    np.array(
                        dict_models[functionName]["call_perFunc"].predict(
                            inputDF=trainDF_oneCondition[expVar]
                        )
                    )
                )
                real_call: float = trainDF.reset_index().loc[0]["#Call"]

                _list_series.append(
                    pd.Series(
                        {
                            "process": elem_process,
                            "iteration": elem_iteration,
                            "size": elem_size,
                            "functionName": functionName,
                            "predicted_call": predicted_call,
                            "real_call": real_call,
                        }
                    )
                )

DF_result_lulesh_about_call: pd.DataFrame = pd.DataFrame(_list_series)
DF_result_lulesh_about_call = add_relativeErrorRateCol(
    inputDF=DF_result_lulesh_about_call,
    real_colName="real_call",
    predicted_colName="predicted_call",
    targetColName="relative_error_rate",
)
DF_result_lulesh_about_call
Out[40]:
process iteration size functionName predicted_call real_call relative_error_rate
0 8 8 16 .TAU_application 1.000000 1.0 0.000000
1 8 8 16 MPI_Allreduce() 7.000000 1.0 600.000000
2 8 8 16 MPI_Barrier() 1.000000 1.0 0.000000
3 8 8 16 MPI_Comm_rank() 77.000000 1.0 7600.000000
4 8 8 16 MPI_Comm_size() 1.000000 1.0 0.000000
... ... ... ... ... ... ... ...
3835 343 128 48 void_Domain::SetupSymmetryPlanes(Int_t) 1.000000 1.0 0.000000
3836 343 128 48 void_Domain::~Domain() 1.000000 1.0 0.000000
3837 343 128 48 void_InitMeshDecomp(Int_t_Int_t_Int_t 1.000000 1.0 0.000000
3838 343 128 48 void_ParseCommandLineOptions(int_char_**_Int_t... 1.000000 1.0 0.000000
3839 343 128 48 void_VerifyAndWriteFinalOutput(Real_t_Domain 0.002915 1.0 99.708455

3840 rows × 7 columns

In [41]:
trainDF.reset_index()
Out[41]:
level_0 index %Time Exclusive Inclusive #Call #Subrs Name process iteration size ExclusivePerCall functionName
0 0 0 100.0 3.420000e-06 4,647 1.000000 1.000 .TAU_application 8 8 16 3.500000e-06 .TAU_application
1 1 1 100.0 2.500000e-02 4,647 1.000000 100.125 int_main(int_char_**) 8 8 16 2.500000e-02 int_main(int_char_**)
2 2 2 84.0 6.192000e+00 3,901 1.000000 0.000 MPI_Finalize() 8 8 16 3.901000e+00 MPI_Finalize()
3 3 3 15.1 7.276667e-01 699 1.000000 0.000 MPI_Init() 8 8 16 6.990000e-01 MPI_Init()
4 4 4 0.2 6.000000e-03 11 8.000000 32768.000 void_CalcKinematicsForElems(Domain 8 8 16 7.500000e-04 void_CalcKinematicsForElems(Domain
... ... ... ... ... ... ... ... ... ... ... ... ... ...
3835 3835 27 0.0 5.483333e-06 0.00538 1.000000 0.000 void_Domain::SetupSymmetryPlanes(Int_t) 343 128 48 5.380000e-06 void_Domain::SetupSymmetryPlanes(Int_t)
3836 3836 28 0.0 1.606667e-06 0.00355 1.000000 2.000 void_ParseCommandLineOptions(int_char_**_Int_t... 343 128 48 1.620000e-06 void_ParseCommandLineOptions(int_char_**_Int_t...
3837 3837 29 0.0 1.896667e-06 0.00193 2.000000 0.000 StrToInt 343 128 48 9.650000e-07 StrToInt
3838 3838 30 0.0 5.170000e-07 0.000478 1.000000 0.000 MPI_Comm_size() 343 128 48 4.780000e-07 MPI_Comm_size()
3839 3839 31 0.0 2.703333e-07 0.000254 0.002915 0.000 void_VerifyAndWriteFinalOutput(Real_t_Domain 343 128 48 8.712206e-05 void_VerifyAndWriteFinalOutput(Real_t_Domain

3840 rows × 13 columns

In [42]:
DF_result_lulesh_about_call.mean()
/tmp/ipykernel_11192/3814533107.py:1: FutureWarning:

The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning.

Out[42]:
process                1.305000e+02
iteration              4.960000e+01
size                   3.000000e+01
predicted_call         6.391537e+04
real_call              1.000000e+00
relative_error_rate    6.391443e+06
dtype: float64